Skip to content

Verify the Postgres server certificate - #7

Merged
bulbashenko merged 1 commit into
mainfrom
verify-db-ca
Oct 26, 2026
Merged

bulbashenko merged 1 commit into
mainfrom
verify-db-ca

Conversation

@bulbashenko

Copy link
Copy Markdown
Contributor

Часть 2 из 3 для bulbashenko-com/infra#94.

  • config.json: allowInvalidCerts: false для DataStore PostgreSql.
  • ConfigMap ca-bundle (публичные корни Debian и внутренний CA, раскладывает trust-manager) монтируется в /etc/ca-bundle, SSL_CERT_FILE указывает на него.

Почему не только внутренний CA: Stalwart (v0.16.23, crates/utils/src/tls.rs) проверяет TLS через rustls-platform-verifier, а на Linux он через rustls-native-certs берёт SSL_CERT_FILE вместо системного хранилища. Этим же верификатором (pki_verify) проверяется исходящая SMTP-доставка, поэтому в файле нужны и публичные корни.

Draft, пока не live bulbashenko-com/infra#130. У Stalwart стратегия Recreate: если выкатить это раньше, под не стартует (нет ConfigMap) или не подключится к базе (сертификат ещё от CA CNPG), и почта ляжет. Deploy PR deploy/mail мержить только после #130.

Проверка после деплоя: под Ready, в логах нет TLS-ошибок к Postgres, тестовое письмо наружу и внутрь.

🤖 Generated with Claude Code

Stalwart connected to Postgres with allowInvalidCerts, so any
certificate was accepted (infra#94). infra now signs the server
certificate with an internal CA and publishes ConfigMap ca-bundle:
Debian's public roots plus that CA.

Stalwart's rustls verifier reads the trust store from SSL_CERT_FILE
when it is set, and then ignores the system store. That verifier also
checks outbound SMTP, ACME and OIDC, so the file must hold the public
roots too, which is why it is ca-bundle and not the internal CA alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bulbashenko
bulbashenko marked this pull request as ready for review October 26, 2026 21:50
@bulbashenko
bulbashenko merged commit 3268cf4 into main Oct 26, 2026
2 checks passed
@bulbashenko
bulbashenko deleted the verify-db-ca branch October 26, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant